//思路一：循环
int addDigits(int num) {
    int x;
    while(num / 10){
        x = 0;
        while(num){    
            x = x + num % 10;
            num /= 10;
        }
    num = x;
    }
    return num;
}
//思路二：递归
int addDigit(int n){
    if(n / 10 == 0)
        return n;
    else{
        int x = 0;
        while(n){    
            x = x + n % 10;
            n /= 10;
        }
        return addDigit(x);
    }
}

int addDigits(int num) {
    num = addDigit(num);
    return num;
}
//运用数学之力
/*数学上提到：
能够被9整除的整数，各位上的数字加起来也必然能被9整除，所以，连续累加起来，最终必然就是9。
不能被9整除的整数，各位上的数字加起来，结果对9取模，和初始数对9取摸，是一样的，所以，连续累加起来，最终必然就是初始数对9取摸。*/
int addDigits(int num) {
    
    return (num - 1) % 9 + 1;
}
/*给定一个非负整数 num，反复将各个位上的数字相加，直到结果为一位数。返回这个结果。*/